Skip to content

Conversation

@JustinStitt
Copy link
Contributor

@JustinStitt JustinStitt commented Nov 6, 2025

Description of the problem being solved:

Kinetic Fusillade is not well supported by PoB at the moment yet it is becoming a more popular skill. Better support for this particular skill should increase user satisfaction.

For reference Neversink and Mathil are playing this skill and 0.4% of poe.ninja players are using this skill.

So, I've added support for the Projectiles deal (3-8)% more Damage per previous Projectile fired in sequence mod as well as support for "Effective DPS" calculations which take into account skill duration (rounded to server tick) and attack rate. This is visible within the Calcs tab.

The modes are currently: 1 Projectile and All Projectiles.

We want 1 Projectile mode because this skill is not guaranteed to layer all projectiles onto a single enemy. In fact, it specifically states it will try to not target a single enemy (although the inherent chain might eventually mean the boss does get hit by all projectiles with other enemies nearby). Without a single projectile breakdown it would be very difficult for the average user to reverse engineer the actual damage of a single projectile as you would have to "undo" the sequential damage multiplier.

The All Projectiles mode is special because it needs to consider the Projectiles deal (3-8)% more Damage per previous Projectile fired in sequence mod.

Steps taken to verify a working solution:

  • Start with a blank build
  • Add a wand
  • Add Kinetic Fusillade
  • Visit Calc tab
  • Check 1 Projectile mode has sane and correct calculations
  • Add GMP or Greater Volley or some other source of +proj
  • Check All Projectiles mode to see it properly considers projectile count and duration modifiers.

Link to a build that showcases this PR:

For any of those PoBs, check out All Projectiles mode which does some linear algebra to calculate DPS considering the Projectiles deal (3-8)% more Damage per previous Projectile fired in sequence mod (which is now fully supported).

Before screenshot:

image

After screenshot:

Using All Projectiles mode:

image

Now, allocating less duration stuff on the tree or gear can properly showcase in-game dps increases or decreases:

image

@JustinStitt JustinStitt changed the title Fusillade Add Support for Kinetic Fusillade Nov 6, 2025
@JustinStitt JustinStitt changed the title Add Support for Kinetic Fusillade Add Support for Nuanced Kinetic Fusillade Nov 6, 2025
@JustinStitt
Copy link
Contributor Author

Whoops, I need to regenerate the act_int.lua one sec.

@JustinStitt JustinStitt force-pushed the fusillade branch 2 times, most recently from 8b94353 to 4b3111a Compare November 6, 2025 01:41
@JustinStitt
Copy link
Contributor Author

I based on wrong branch, closing this and opened a new pr that targets dev. Sorry about this.

@JustinStitt JustinStitt closed this Nov 6, 2025
Copy link
Contributor

@LocalIdentity LocalIdentity left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few changes needed
breakdowns can be done on the gem iteself along with code for the hit rate and average DPS
Don't make new output stats that are added to the sidebar. Space there is very tight so only essential info is shown there
For the breakdowns add descriptions for what each calc is for
Refer to Ball Lightning as how a skill has a bunch of code on the gem along with a in depth breakdown for the calcs pags outlining specific mechanics related to it

@LocalIdentity LocalIdentity reopened this Nov 6, 2025
@LocalIdentity LocalIdentity changed the base branch from master to dev November 6, 2025 01:52
@JustinStitt
Copy link
Contributor Author

Thanks for the review, I'll fix all this up today or tomorrow :)

@JustinStitt
Copy link
Contributor Author

Which section in the calcs page should I put the effective DPS calculated from duration and attack rate? I've never seen a DPS number in the "Skill type-specific stats" section (please provide an example if there is one). Should I add a new row to the "Skill Hit Damage" top section?

Introduce support for Kinetic Fusillade's sequential fire damage mod.

Add support for DPS calculations considering all available projectiles
while factoring in duration and attack rate for effective dps calcs.

Signed-off-by: Justin Stitt <[email protected]>
@JustinStitt
Copy link
Contributor Author

Hi, I reworked this PR based on review here and on discord. I altered my PR description to provide reasoning behind the modes as well as added new screenshots to properly reflect the current state of the PR. I'd be happy to provide more screenshots if necessary.

note: I hijacked postCritFunc because it runs after attack rate is known at the gem-level. Is this a hack?!

@JustinStitt
Copy link
Contributor Author

Hi, I've pushed a commit to this PR which properly considers the delay between projectiles within a fusillade volley. To summarize fusillade's behavior there is 1) an initial delay before projectiles can start firing and 2) once projectiles have started firing, there is a delay between each individual projectile.

This second part is "batched" in terms of server tick rate. Depending on breakpoints, 2 or more projectiles may fire on the same server tick. I tested this with a video recording that I recorded at 1/0.033=30.303 fps and stepped through it frame by frame. Theoretically, if you reduced the delay between projectiles to a very small delay and also had a small enough number of projectiles you could fire the entire volley on the very next server tick.

This change to my initial calculations was inspired by this video by lolcohol which had research done by Nemrod10@yt. Nemrod's proposed calculator is available here (google sheet) but it is not entirely accurate as it doesn't consider server tick rates.

I've also added a line of text letting the user know these calculations are best-effort as we don't know the exact delay between projectiles. Using the method I mentioned earlier, it is around 0.05 which is also what Nemrod arrived at.

image

(pink boxes are my own, to help illustrate)

@Wires77 Wires77 mentioned this pull request Nov 8, 2025
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants